<template>
	<view>
		<cu-custom bgColor="bg-white" :isBack="true">
			<block slot="content">待提交事项</block>
			<block slot="right">
				<image @click="showFun" class="nav-right-image" src="@/static/images/nav_opt.png"></image>
			</block>
		</cu-custom>

		<view class="page-content" :style="{height:this.ContentArea+'px',paddingTop:'30rpx'}">
			<!-- <view class="search">
				<view class="search-left">
					<image src="@/static/images/search.png" mode="aspectFit" />
				</view>
				<input class="search-center" type="text" placeholder="输入用户进行搜索" placeholder-class="search-placeholder"
					v-model="searchValue" @blur="onRefresh">
			</view> -->

			<view class="page-content-main">
				<!-- <view class="select-box">
					<view style="position: relative;">
						<uni-datetime-picker v-model="createTime" type="line">
							<view class="select">
								<view class="select-value">{{ createTimeShow }}</view>
								<view class="select-icon" v-if="createTime ==''">
									<image src="@/static/images/downArrow.png" mode="aspectFit" />
								</view>
							</view>
						</uni-datetime-picker>
						<view class="cuIcon-roundclose" v-if="createTime !=''"
							style="z-index: 9;width: 20px;height: 20px;position: absolute;right: 55rpx;top: 25rpx;color: #FFFFFF;"
							@click="clearDatetimePicker">
						</view>
					</view>

					
					<view class="mySelect">
						<my-select range-key="text" value-key="value" dict-code="approval_status" class="mySelect-value"
							style="position: inherit;" v-model="approvalStatus" />
						<view class="mySelect-icon">
							<image src="@/static/images/downArrow.png" mode="aspectFit" />
						</view>
					</view>
				</view> -->
				<scroll-view class="list" :scroll-y='true' :refresher-enabled="true" :refresher-triggered="refreshing"
					@refresherrefresh="onRefresh" :refresher-background="'#F9F9F9'" @scrolltolower="onEndReached">
					<uni-swipe-action right-options="rightOptions">
						<uni-swipe-action-item v-for="(item, index) in dataList" :key="index">
							<checkbox v-if="isBatchChoose" class='round blue'
								:class="selectList.includes(item.id)?'checked':''"
								:checked="selectList.includes(item.id)?true:false" :value="item.id"
								@click="checkBoxClick(item)" style="position: absolute;top: 45%;"></checkbox>
							<view :style="isBatchChoose?'margin-left: 80rpx;':''"
								style="position: relative;display:flex;margin-top:10px;background-color: #F9F9F9;border-radius: 15px;padding: 10px;">
								<view>
									<image class="nav-right-image" :src="item.avatar"></image>
								</view>
								<view class="textView">
									<view style="display: flex; align-items: center;">
										<text class="listText">
											{{item.realname}}
										</text>
										<text
											style="background-color: #ffefee;padding: 3px 10px;border-radius: 5px;display: inline-block;color: #B12424;margin-left: 10px;">
											{{item.approvalType_dictText}}
										</text>
									</view>
									<view style="margin-top: 8px;display: flex; align-items: center;">
										<image style="width: 20px; height: 20px;" src="@/static/images/Group3.png">
										</image>
										<text class="listTextTwo">
											公司：{{item.company_dictText}}
										</text>
									</view>
									<view style="margin-top: 8px;display: flex; align-items: center;">
										<image style="width: 20px; height: 20px; vertical-align: middle;"
											src="@/static/images/Group1.png"></image>
										<text class="listTextTwo">
											创建日期：{{ item.createTime != null ? item.createTime.replace(/-/g, "/") : null}}
										</text>
									</view>

									<statusText :status="item.approvalStatus"></statusText>
								</view>

								<!-- <view style="width:20px;position: absolute;right: 30px;top:16px;">
								<image style="width: 20px;height: 20px;" src="@/static/images/blackListBtn.png"
									@click="toDetails"></image>
							</view> -->
							</view>

							<template v-slot:right>
								<view
									style="position: relative;margin-top:10px;margin-left:20rpx;background-color: #F9F9F9;border-radius: 15px;padding: 30rpx 30rpx;">
									<view @click="toDetails(item)"
										style="border-radius: 30rpx;background-color: rgba(69, 145, 254, 1);padding: 10rpx 30rpx;margin-bottom: 15rpx;color: #FFFFFF;">
										编辑
									</view>
									<!-- <view @click="toDelete(item.id)"
										style="border-radius: 30rpx;background-color: rgba(220, 31, 31, 1);padding: 10rpx 30rpx;margin-bottom: 15rpx;color: #FFFFFF;">
										删除
									</view> -->

								</view>
							</template>
						</uni-swipe-action-item>
					</uni-swipe-action>
				</scroll-view>

				<view style="height: 90rpx;padding: 20rpx;" v-if="isBatchChoose">

				</view>
				<view
					style="height: 90rpx;background-color: #f1f1f1;padding: 20rpx;position: fixed;bottom: 0;width: 95%;z-index: 999;"
					v-if="isBatchChoose">
					<view>
						<checkbox class='round blue' :class="isCheckAll?'checked':''" :checked="isCheckAll?true:false"
							value="all" @click="checkAllClick" style="position:absolute;left: 0;top:15%;">
						</checkbox>
						<text style="position:absolute;left: 0;top:65%;font-size: 18rpx;">全选</text>
					</view>
					<view style="float: right;margin-right: 40rpx;">
						<button class="cu-btn round sm bg-red" style="margin-right: 20rpx;" @click="cancel">取消</button>
						<button class="cu-btn round sm bg-blue" @click="btnBatchSure">确定</button>
					</view>
				</view>
			</view>

		</view>

		<uni-popup ref="deletePopup" background-color="#fff" :mask-click="false">
			<view
				style="text-align: center;background-color: #FFFFFF;padding: 11rpx;width: 580rpx;height: 470rpx;border-radius: 42rpx;">
				<view class="submit-item">
					<image class="submit-icon" src="@/static/images/deleteIcon.png" />
				</view>
				<view style="margin-top: 28rpx;">
					<text class="submit-text">确定删除该列表吗</text>
				</view>
				<br>
				<view style="display: flex;">
					<button @click="sureDelete" style="border-radius: 20rpx; background-color: red;
							color: rgba(255, 255, 255, 1);width: 230rpx;margin-top: 50rpx;">确定</button>
					<button @click="cancelDelete" style="border-radius: 20rpx; background-color: gray;
							color: rgba(255, 255, 255, 1);width: 230rpx;margin-top: 50rpx;">取消</button>
				</view>
			</view>
		</uni-popup>
	</view>
</template>

<script>
	import moment from 'moment';
	import configService from '@/common/service/config.service.js'
	import approvelTypeObject from '@/common/util/approvelTypeObject.json'
	export default {
		data() {
			return {
				CustomBar: 0,
				ContentArea: 0,
				index: 0,
				array: ['部门'],
				indexTwo: 0,
				arrayTwo: ['全部', '已完成', '未完成'],
				createTime: moment().format('YYYY-MM-DD'),
				searchValue: '',
				departTitle: '',
				departFrom: '',
				departObj: {
					departIds: '',
					departTitle: '',
					departTitleLast: ''
				},
				dataList: [],
				isShowFun: false,
				isShowDetails: false,
				detailsBar: 0, // 初始位置
				refreshing: true,
				pageSize: 10,
				pageNo: 1,
				total: 0,
				listUrl: '',
				isBatchChoose: false,
				selectList: [],
				isCheckAll: false,
				approvalStatus: '',
				dataList: [],
				deleteId: '',
				dataObj: '',
				dataList2: [],
			}
		},
		onLoad() {
			uni.$on('departCallBack', (data) => {
				this.$set(this.departObj, 'departIds', data?.idArray?.join(','))
				this.$set(this.departObj, 'departTitle', data?.titleArray?.join('>'))
				const title = data.titleArray.join('>')?.split('>');
				this.$set(this.departObj, 'departTitleLast', title[title.length - 1])
				console.log(title[title.length - 1])
				console.log(this.departObj)
			})
		},
		watch: {
			createTime: {
				immediate: true,
				handler(val, old) {
					this.onRefresh()
				},
			},
			approvalStatus: {
				immediate: true,
				handler(val, old) {
					this.onRefresh()
				},
			},
		},
		mounted() {
			this.onRefresh()
		},
		created() {
			//this.getList()
		},
		computed: {
			createTimeShow: function() {
				return moment(this.createTime).isValid() ? moment(this.createTime).format('MM-DD') : '请选择'
			}
		},
		methods: {
			download() {},
			getFileAccessHttpUrl(avatar, subStr) {
				if (!subStr) subStr = 'http'
				if (avatar && avatar.startsWith(subStr)) {
					return avatar;
				} else {
					return configService.staticDomainURL + "/" + avatar;
				}
			},
			async onRefresh() {
				try {
					this.refreshing = true
					const res = await this.getList(1);
					this.refreshing = false
					this.pageNo = 1
					this.dataList = res.data.result.records
					this.dataList.forEach((item) => {

					})
					for (var i = 0; i < this.dataList.length; i++) {
						this.dataList[i]['avatar'] = this.getFileAccessHttpUrl(this.dataList[i]['avatar'])
					}
					this.total = res.data.result.total
				} catch (e) {
					this.refreshing = false
					console.log(e)
				}

			},
			async onEndReached() {
				try {
					if (this.pageNo * this.pageSize < this.total) {
						const res = await this.getList(this.pageNo + 1);
						this.pageNo += 1;
						this.dataList = this.dataList.concat(res.data.result.records)
						this.dataList.forEach((item) => {


						})
						for (var i = 0; i < this.dataList.length; i++) {
							this.dataList[i]['avatar'] = this.getFileAccessHttpUrl(this.dataList[i]['avatar'])
						}
						this.total = res.data.result.total
					}
				} catch (e) {
					console.log(e)
				}
			},
			ChooseDepartIds(from = '') {
				this.departFrom = from;
				uni.navigateTo({
					url: '/pages/oa/common/depart',
				});
			},
			searchBtn() {
				this.getList()
			},
			async getList(pageNo) {
				console.log(this.departObj)
				console.log("获取列表")
				let companyId = ''
				uni.getStorage({
					key: 'Auth_Company_Id',
					success: function(res) {
						console.log('rrr', res.data);
						companyId = res.data
					},
					fail: function(error) {
						console.log('获取数据失败：', error);
						companyId = ''
					}
				});
				let params = {}
				if (this.createTime) {
					params = {
						pageNo: pageNo,
						pageSize: this.pageSize,
						column: 'createTime',
						order: 'desc',
						// company: localStorage.getItem('Auth_Company_Id'),
						// company: companyId,
						// // departIds: this.departObj.departIds,
						// // signType: '2',
						// // arbitrarily: this.searchValue,
						// // realname: this.searchValue,
						// // createTime: this.createTime + " 00:00:00",
						// approvalStatus: this.approvalStatus
					}
				} else {
					params = {
						pageNo: pageNo,
						pageSize: this.pageSize,
						column: 'createTime',
						order: 'desc',
						// company: localStorage.getItem('Auth_Company_Id'),
						// company: companyId,
						// departIds: this.departObj.departIds,
						// signType: '2',
						// arbitrarily: this.searchValue,
						// realname: this.searchValue,
						// approvalStatus: this.approvalStatus
					}
				}
				return await this.$http.get("/crm_on_hand/crmOnHand/queryUnSubmitAndReject", {
					params: params
				})
				// .then(res => {
				// 	if (res.data.success) {
				// 		let records = res.data.result.records
				// 		console.log(records)
				// 		this.dataList = records
				// 		console.log("dataList")
				// 		console.log(this.dataList)
				// 	}
				// })
			},
			clearSearch() {
				this.searchValue = ''
			},
			bindPickerChange(e) {
				this.index = e.detail.value
			},
			bindPickerChangeTwo(e) {
				this.indexTwo = e.detail.value
			},
			showFun() {
				this.isShowFun = true
			},
			hideFun() {
				this.isShowFun = false
			},
			showDetails(event) {
				var targetElement = document.getElementById(event);
				var elementY = this.getElementY(targetElement);
				this.detailsBar = elementY + 20;
				this.isShowDetails = true
			},
			getElementY(element) {
				var rect = element.getBoundingClientRect();
				return rect.top + window.scrollY;
			},
			hideDetails() {
				this.isShowDetails = false
			},
			gotoAdd() {
				console.log('新增')
				uni.navigateTo({
					url: '/pages/contract/contractAdd/index'
				})
			},
			deleteBtn() {
				console.log('删除')
			},


			toDetails(item) {
				console.log('详情')
				var url_add = approvelTypeObject[item.approvalType].url_add
				var url = approvelTypeObject[item.approvalType].url
				console.log("url:===", url)
				this.$http.get(url + item.applicationId)
					.then(res => {
						if (res.data.success) {
							let records = res.data.result
							this.dataObj = records
							console.log("res.data.result" + res.data.result)
							//console.log(this.dataObj)
							console.log("item.approvalType:===", item.approvalType)
							if (item.approvalType == 0) {
								uni.navigateTo({
									url: url_add + '?params=' +
										encodeURIComponent(JSON
											.stringify(this.dataObj)) + "&isEdit=" + 1,
								})
							} else {
								uni.navigateTo({
									url: url_add + '?id=' + item.applicationId + '&userId=' + this.dataObj
										.userId + '&dataObj=' + JSON.stringify(this.dataObj)

								})
							}


						}
					})

			},


			toDelete(id) {
				console.log('删除')
				this.deleteId = id
				this.$refs.deletePopup.open('center')
			},
			sureDelete() {
				this.$http.delete('/crm_contract/crmContract/delete?id=' +
						this.deleteId)
					.then(res => {
						if (res.data.success) {
							this.$tip.toast('删除成功')
							this.getList(1)
						} else {
							this.$tip.toast('删除失败')
						}
					}).catch(() => {
						this.$tip.loaded();
						this.$tip.toast('删除失败')
					});
				this.$refs.deletePopup.close()

			},
			cancelDelete() {
				this.deleteId = ''
				this.$refs.deletePopup.close()
			},
			batchDelete() {
				this.isBatchChoose = !this.isBatchChoose
			},
			checkBoxClick(e) {
				if (!this.selectList.includes(e.id)) {
					this.selectList.push(e.id)
				} else {
					const index = this.selectList.indexOf(e.id);
					if (index !== -1) {
						this.selectList.splice(index, 1);
					}
				}
			},
			checkAllClick() {
				this.isCheckAll = !this.isCheckAll
				if (this.isCheckAll) {
					this.dataList.forEach((item) => {
						if (!this.selectList.includes(item.id)) {
							this.selectList.push(item.id)
						}
					})
				} else {
					this.selectList = []
				}
			},

			clearDatetimePicker() {
				this.createTime = ''
			},
			cancel() {
				this.isCheckAll = false
				this.selectList = []
				this.isBatchChoose = !this.isBatchChoose
			},
			btnBatchSure() {
				this.deleteIds = this.selectList
				this.isCheckAll = false
				// this.selectList = []
				this.isBatchChoose = !this.isBatchChoose
				this.$refs.deletePopup.open('center')
			}
		}
	}
</script>

<style lang="scss" scoped>
	image {
		width: 100%;
		height: 100%;
	}

	.blackList {
		height: 100%;
		overflow: hidden;
	}

	.page-search {
		padding-left: 34rpx;
		margin-bottom: 5rpx;
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		align-items: center;
	}

	.search {
		width: 680rpx;
		height: 86rpx;
		background-color: rgba(249, 249, 249, 1);
		border-radius: 60rpx;
		display: flex;
		flex-direction: row;
		align-items: center;
		padding-left: 24rpx;
		padding-right: 24rpx;

		.search-left {
			width: 28rpx;
			height: 28rpx;
			display: flex;
			justify-content: center;
			align-items: center;
		}

		.search-center {
			margin-left: 22rpx;
		}

		.search-placeholder {
			font-size: 28rpx;
			font-weight: 400;
			color: #7C7C7C;
		}


	}

	.filter-btn {
		width: 40rpx;
		height: 40rpx;
		margin-right: 42rpx;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.page-content-main {
		height: calc(100% - 12rpx - 86rpx);
		border-top-left-radius: 64rpx;
		border-top-right-radius: 64rpx;
		padding: 26rpx 34rpx 0 34rpx
	}

	.select-box {
		display: flex;
		flex-direction: row;
		justify-content: flex-start;

	}

	.select {
		width: 160rpx;
		height: 74rpx;
		border-radius: 60rpx;
		background-color: #4591FE;
		margin-bottom: 5rpx;
		display: flex;
		flex-direction: row;
		justify-content: center;
		align-items: center;
		margin-right: 48rpx;
		position: relative;

		.select-value {
			font-size: 28rpx;
			font-weight: 400;
			color: #FFFFFF;
			margin-right: 18rpx;
		}

		.select-icon {
			width: 22rpx;
			height: 22rpx;
			display: flex;
			justify-content: center;
			align-items: center;
			position: absolute;
			right: 20rpx;
			top: 25rpx;
		}
	}

	.list {
		height: calc(100vh - 450rpx);
	}

	.list-item {
		border-radius: 28rpx;
		background-color: #FFFFFF;
		padding: 26rpx 24rpx 28rpx 20rpx;
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		margin-bottom: 26rpx;
		position: relative;

		.list-item-leftCenter {
			display: flex;
			flex-direction: row;
		}

		.list-item-left {
			width: 86rpx;
			height: 86rpx;
			margin-right: 26rpx;
			display: flex;
			justify-content: center;
			align-items: center;
		}

		.list-item-center {
			.list-item-row {
				display: flex;
				flex-direction: row;
				margin-bottom: 20rpx;

				.list-item-name {
					color: #101317;
					font-size: 32rpx;
					margin-right: 16rpx;
				}

				.list-item-sex {
					width: 106rpx;
					height: 42rpx;
					border-top-right-radius: 40rpx;
					border-bottom-right-radius: 40rpx;
					border-bottom-left-radius: 20rpx;
					background-color: rgba(234, 171, 78, 0.35);
					line-height: 42rpx;
					text-align: center;
					color: rgba(255, 173, 4, 1);
					font-size: 24rpx;
				}

				.list-item-row-icon {
					width: 38rpx;
					height: 38rpx;
					margin-right: 10rpx;
					display: flex;
					justify-content: center;
					align-items: center;
				}

				.list-item-row-title,
				.list-item-row-value {
					font-size: 24rpx;
					font-weight: 400;
					color: #101317;
					line-height: 38rpx;
				}

			}
		}

		.list-item-btn {
			width: 36rpx;
			height: 36rpx;
			margin-top: 56rpx;
			display: flex;
			justify-content: center;
			align-items: center;
		}

		.list-item-tab {
			width: 132rpx;
			height: 56rpx;
			text-align: center;
			line-height: 56rpx;
			background-color: rgba(69, 145, 254, 0.4);
			position: absolute;
			top: 0;
			right: 0;
			border-top-right-radius: 26rpx;
			border-bottom-left-radius: 20rpx;
		}

		.list-item-tab-text {
			font-size: 26rpx;
			color: rgba(69, 145, 254, 1)
		}
	}

	.nav-right-image {
		width: 80rpx;
		height: 80rpx;
		margin-left: 15px;
	}

	.fun-wrap {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background-color: rgba(3, 3, 3, 0.28);
		z-index: 10000;
	}

	.fun-box {
		display: flex;
		flex-direction: row;
		justify-content: flex-start;
		align-items: center;
		flex-wrap: wrap;
		width: 556rpx;
		height: 444rpx;
		border-top-left-radius: 42rpx;
		border-bottom-left-radius: 42rpx;
		border-bottom-right-radius: 42rpx;
		position: absolute;
		right: 74rpx;
		background-color: #FFFFFF;
		padding-top: 35rpx;
	}

	.fun-item {
		width: 185rpx;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		margin-bottom: 44rpx;
	}

	.fun-icon {
		width: 92rpx;
		height: 92rpx;
		margin-bottom: 22rpx;
	}

	.cu-form-group {
		background-color: transparent;
	}

	::v-deep {
		.cu-form-group uni-picker .picker {
			color: #FFFFFF;
		}

		.cu-form-group uni-picker::after {
			opacity: 0;
		}
	}

	.textView {
		margin-left: 30px;
		font-size: 10px;
		margin-top: 5px;
	}

	.listText {
		width: 148rpx;
		height: 24rpx;
		font-size: 20rpx;
		font-family: PingFang SC, PingFang SC;
		font-weight: 400;
		color: #000000;
		line-height: 24rpx;
	}

	.details-box {
		display: flex;
		flex-direction: row;
		justify-content: flex-start;
		align-items: center;
		flex-wrap: wrap;
		width: 280rpx;
		height: 250rpx;
		border-top-left-radius: 42rpx;
		border-bottom-left-radius: 42rpx;
		border-bottom-right-radius: 42rpx;
		position: absolute;
		right: 65px;
		background-color: #FFFFFF;
		padding: 5px 15px;
	}

	.submit-icon {
		width: 118rpx;
		height: 118rpx;
		margin-top: 58rpx;
	}

	.selectDepart {
		height: 74rpx;
		border-radius: 60rpx;
		background-color: #4591FE;
		margin-bottom: 20rpx;
		display: flex;
		flex-direction: row;
		justify-content: center;
		align-items: center;
		margin-right: 48rpx;
		position: relative;

		.select-icon {
			width: 22rpx;
			height: 22rpx;
			display: flex;
			justify-content: center;
			align-items: center;
			position: absolute;
			right: 20rpx;
			top: 25rpx;
		}
	}


	.mySelect {
		position: relative;
		background-color: #4591FE;
		border-radius: 60rpx;
		height: 74rpx;

		.mySelect-value {
			position: inherit;
			margin-left: 10rpx;
			margin-right: -25rpx;
			font-size: 28rpx;
			font-weight: 400;
			color: #FFFFFF;
		}

		.mySelect-icon {
			width: 22rpx;
			height: 22rpx;
			position: absolute;
			top: 30%;
			right: 18%;
		}
	}
</style>